Конфигурация кораблей для Homeworld 2
При создании своих кораблей крайне важно также и правильно их сконфигурировать. Homeworld 2 предлагает достаточно возможностей для настройки поведения игровых моделей. Конечно, не на всё хватает предоставленных фишек, но на большую часть - явно. В игре есть три похожих по настройкам типа "кораблей": # Сами корабли: /Data/ship/*, *.ship-файл - это настройка; # Подсистемы: /Data/subsystems/*, *.subs-файл - это настройка; # Ракеты: /Data/missiles/*, *.miss-файл - это настройка; Они по сути являются *.lua-файлами, поэтому в них работают все lua-фишки. Ниже даются объяснения, что значит та или иная функция. Содержимое файла *.ship Файлы корабля, чтобы игра их распознала, должны храниться в папке /Data/ship, в каталоге с характерным именем "префиксрасы_названиекорабля", а его настройки - в этой папке, в *.ship-файле, у которого должно быть то же имя, что и папки. Впрочем, это касается всего содержимого каталога. Общие настройки То, с чего начинается любой корабль: NewShipType = StartShipConfig() ''-- точнее, это корабль;'' ИЛИ NewShipType = StartMissileConfig() ''-- а это начало конфига ракеты;'' NewShipType.controllerType = "Ship" Эта функция говорит движку, что это: * Ship - корабль; * Missile - ракета; * "None" - никем не контроллируется, обломок; Описательные настройки NewShipType.displayedName = "$1520" ''-- название корабля;'' NewShipType.sobDescription = "$1521" ''-- описание корабля;'' NewShipType.blobName = "$1575" ''-- специальное название для корабля, появляется при наведении на него мышкой;'' NewShipType.blobNamePriority = 100 NewShipType.buildCost = 700 ''-- стоимость корабля;'' NewShipType.buildTime = 50 ''-- время постройки корабля;'' Здоровье и броня NewShipType.maxhealth = 16000 ''-- хитпойнты корабля;'' NewShipType.regentime = 1200 ''-- время регенерации "здоровья";'' NewShipType.minRegenTime = 1200 ''-- this is changable, 450 for the vaygr, 1200 for the hiigarans;'' NewShipType.sideArmourDamage = 1.2 ''-- коэффициент урона при ударе в бока корабля;'' NewShipType.rearArmourDamage = 1.2 ''-- коэффициент урона при ударе в днище корабля;'' NewShipType.collisionMultiplier = 1 ''-- коэффициент урона при столкновении;'' NewShipType.dustCloudDamageTime = 160 ''-- время до полного уничтожения (?) при нахождении в пылевых облаках;'' NewShipType.nebulaDamageTime = 200 ''-- время до полного уничтожения (?) при нахождении в радиоактивных облаках;'' Масса корабля NewShipType.mass Полужирное начертание= 100 ''-- масса корабля;'' Используются такие значения: * 10 - истребители и ниже; * 15 - корветы; * 20 - турели; * 40 - коллектор, тягач; * 50 - дохлый тягач; * 100 - фрегат; * 300 - эсминец Хранителей; * 500 - эсминец; * 1к - суперкэпы; * 1.5к - Саджуук; * 2к - Мамы и верфи, а также тюремная станция вэйгров; * 5к - всякие дереликты и астероиды; * 20к - комстанция вэйгров; Формации и звенья Формации смотреть в специально отведённом файле (TODO: указать где и как, создать страницу, посвящённую созданию формаций). NewShipType.SquadronSize = 1 ''-- количество кораблей в звене;'' NewShipType.formationSpacing = 250 ''-- расстояние между кораблями в формации, может отсутствовать, если корабль - одиночка;'' NewShipType.passiveFormation = "Spear" ''-- формация при заданной пассивной тактике;'' NewShipType.defensiveFormation = "x" ''-- формация при заданной нейтральной тактике;'' NewShipType.aggressiveFormation = "Claw" ''-- формация при заданной агрессивной тактике;'' Скорости и движение NewShipType.thrusterMaxSpeed = 161 -- standard is 161; anticaps have 150; capture frigates - 230; NewShipType.thrusterAccelTime = 7 NewShipType.thrusterBrakeTime = 2 NewShipType.mainEngineMaxSpeed = 161 -- is the same with the .thrusterMaxSpeed; NewShipType.mainEngineAccelTime = 8 NewShipType.mainEngineBrakeTime = 2 NewShipType.rotationMaxSpeed = 22 -- usual 22, HICF got 35; NewShipType.rotationAccelTime = 0.75 --standard is 0.75, HICF got 0.4; NewShipType.rotationBrakeTime = 0.4 -- hiigaran standard is 0.4, HICFr got 0.2; vaygr got 0.3 ; NewShipType.thrusterUsage = 0.5 --standard is 0.5, capture frigates got 0.75; NewShipType.accelerationAngle = 40 NewShipType.mirrorAngle = 0 NewShipType.secondaryTurnAngle = 0 NewShipType.maxBankingAmount = 20 NewShipType.descendPitch = 20 NewShipType.goalReachEpsilon = 30 NewShipType.slideMoveRange = 100 NewShipType.tumbleStaticX = 10 NewShipType.tumbleStaticY = 20 NewShipType.tumbleStaticZ = 5 NewShipType.tumbleDynamicX = 2 NewShipType.tumbleDynamicY = 10 NewShipType.tumbleDynamicZ = 5 NewShipType.tumbleSpecialDynamicX = 2 NewShipType.tumbleSpecialDynamicY = 10 NewShipType.tumbleSpecialDynamicZ = 5 NewShipType.relativeMoveFactor = 3 --all but VIFr with 2; NewShipType.swayUpdateTime = 4 --Hiigaran have 4, Vaygr have 2; NewShipType.swayOffsetRandomX = 10 NewShipType.swayOffsetRandomY = 10 NewShipType.swayOffsetRandomZ = 10 NewShipType.swayBobbingFactor = 0.05 --hiigaran standard is 0.05, HMFr got 0.1, HFFr - 0.15; vaygr all have 0.15; NewShipType.swayRotateFactor = 0 Орудийный расчёт NewShipType.useTargetRandom = 1 ------------------- .targetRandomPoint* parameter is individual; --NewShipType.targetRandomPointXMin = -0.3 --NewShipType.targetRandomPointXMax = 0.4 --NewShipType.targetRandomPointYMin = -0.35 --NewShipType.targetRandomPointYMax = 0.6 --NewShipType.targetRandomPointZMin = -0.75 --NewShipType.targetRandomPointZMax = 0.85 -------------------- NewShipType.useEngagementRanges = 1 ''-- что-то связанное со стрельбой (?);'' Принадлежность к "семьям" NewShipType.MinimalFamilyToFindPathAround = "MotherShip" NewShipType.BuildFamily = "Frigate_Tdn" -- depends on race which frigate belongs to; NewShipType.AttackFamily = "Frigate" --could be another family, like "capturer", for HMFr; NewShipType.DockFamily = "Frigate" NewShipType.AvoidanceFamily = "Frigate" NewShipType.DisplayFamily = "Frigate" NewShipType.AutoFormationFamily = "Frigate" NewShipType.CollisionFamily = "Big" NewShipType.ArmourFamily = "MediumArmour" NewShipType.UnitCapsFamily = "Frigate" NewShipType.UnitCapsShipType = "CaptureFrigate" --this line may not be present if no special count on them; NewShipType.unitCapsNumber = 2 ''-- неизвестный параметр, возможно, когда-то планировалось сделать ограничение кораблей по экипажу а-ля ХВК;'' NewShipType.militaryUnit = 1 ''-- военный ли юнит (?);'' Информация для AI NewShipType.fighterValue = 0 NewShipType.corvetteValue = 0 NewShipType.frigateValue = 10 --usually is 10, but if powerful frigate, then 12; NewShipType.neutralValue = 0 NewShipType.antiFighterValue = 0 NewShipType.antiCorvetteValue = 0 NewShipType.antiFrigateValue = 12 NewShipType.totalValue = 10 --usually is the same with the .frigateValue; NewShipType.buildPriorityOrder = 30 --usually 30, but may differ; Визуальное отображение NewShipType.retaliationRange = 5500 NewShipType.retaliationDistanceFromGoal = 160 NewShipType.mouseOverMinFadeSize = 0.045 NewShipType.mouseOverMaxFadeSize = 0.1 NewShipType.meshRenderLimit = 13000 NewShipType.dotRenderLimit = 10 NewShipType.visibleInSecondary = 1 NewShipType.minLOD = 0.25 --usual is 0.25, except VIFr - 0.3; NewShipType.goblinsStartFade = 1500 NewShipType.goblinsOff = 1500 NewShipType.upLOD = 2000 NewShipType.upLOD = 2500 NewShipType.downLOD = 2015 NewShipType.downLOD = 2515 NewShipType.minimumZoomFactor = 0.6 -- anticaps got 0.6; assaults with torpedo got 0.63 (anti-strikecraft); specials got 0.5; NewShipType.selectionLimit = 150000 NewShipType.preciseATILimit = 0 NewShipType.selectionPriority = 75 NewShipType.healthBarStyle = 1 NewShipType.nbRestrictedHardpoints = 1 NewShipType.alternativeHyperspaceA = "/etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN_MS" ''-- альтернативный эффект гиперпрыжка (?);'' Tactical Overlay ТО - тактическое отображение, пояснительная графика к кораблям. NewShipType.TOIcon = "Diamond" NewShipType.TOScale = 1 NewShipType.TODistanceFade0 = 9000 NewShipType.TODistanceDisappear0 = 7000 NewShipType.TODistanceFade1 = 4500 NewShipType.TODistanceDisappear1 = 3500 NewShipType.TODistanceFade2 = 12000 NewShipType.TODistanceDisappear2 = 35000 NewShipType.TOGroupScale = 1 NewShipType.TOGroupMergeSize = 0 NLIPS NLIPS - эта штука увеличивает размер корабля издали (чтобы истребители можно было разглядеть). NewShipType.nlips = 0.000125 --usually is 0.000125, except HMFr - 0.0001 - and assaults - 0.00015; NewShipType.nlipsRange = 6000 NewShipType.nlipsFar = 0.0001 --usually is 0.0001, except assaults & VHMFr - 0.00015; NewShipType.nlipsFarRange = 10000 Стратегический экран SM - менеджер сенсоров или стратегический экран. NewShipType.SMRepresentation = "HardDot" -- или меш или харддот: что подгружается в Менеджере Сенсоров, точка или моделька корабля; Возможны варианты: * Invisible - для ракет и прочего; * Harddot - для всякой эскадрильной мелочи; * Mesh - для суперкапов; --NewShipType.SMHighlightDistMin = 20000 -- походу, только для меша; --NewShipType.SMHighlightDistMax = 30000 -- походу, только для меша; Сенсоры NewShipType.visualRange = 1000 ''-- радиус, на котором враги становятся видны на тактическом экране;'' NewShipType.prmSensorRange = 5000 ''-- радиус, на котором враги становятся видны на стратегическом экране;'' NewShipType.secSensorRange = 6000 ''-- радиус, на котором засекаются подходящие корабли на стратегическом экране;'' NewShipType.detectionStrength = 1 ''-- сила сенсоров, от 1 до 4; при 4ёх видны все невидимки;'' Погрузка на корабль NewShipType.isTransferable = 1 ''-- вероятно, можно ли перевозить корабль, да(1)/нет(0);'' Докинг NewShipType.dockTimeBetweenTwoFormations = 1 ''-- время задержки после приёма первого звена лёгких кораблей;'' NewShipType.dockTimeBeforeStart = 2 NewShipType.dockNrOfShipsInDockFormation = 1 NewShipType.dockFormation = "delta" ''-- формация для влёта в доки;'' NewShipType.queueFormation = "dockline" ''-- формация ожидания докинга;'' NewShipType.dontDockWithOtherRaceShips = 1 ''-- не стыковаться с кораблями другой расы, да(1)/нет(0);'' NewShipType.ignoreRaceWhenDocking = 0 ''-- игнорировать расу при докинге, да(1)/нет(0);'' Последние два параметра вызывают вопрос. Вероятно, последний параметр намекает на расу союзника, а предпоследний - на, собственно, тип корабль. То есть, при указанных параметрах, нельзя будет посадить звено хиигарянских истребителей на носители союзника-вэйгра, даже если у него будет захвачен хиигарянский носитель. Запуск NewShipType.launchTimeBetweenTwoFormations = 1 ''-- время между запуском звеньев;'' NewShipType.launchTimeBeforeStart = 2 NewShipType.launchNrOfShipsInDockFormation = 1 NewShipType.launchFormation = "delta" ''-- формация лёгких кораблей при вылете из дока;'' Загрузка модели Для корабля: LoadModel('''NewShipType, 1)' --загружаем модель из той же папки; хз, чо значит "1"; 'ИЛИ''' LoadSharedModel('''NewShipType, "Hgn_Shipyard")' -- прописываем в случае, если используем чужую модель; ''Для ракеты: LoadHODFile('''NewShipType, 1)' 'Повреждения и смерть''' NewShipType.battleScarMaxTriBase = 75 NewShipType.battleScarMaxTriInc = 100 NewShipType.sobDieTime = 1 NewShipType.sobSpecialDieTime = 1 NewShipType.specialDeathSpeed = 40 NewShipType.chanceOfSpecialDeath = 0 NewShipType.deadSobFadeTime = 0 SpawnSalvageOnDeath('NewShipType, "Slv_Chunk_Lrg03", --тип обломка, берётся в папке '/Data/resource/salvage/*, см. также здесь; 1, 0.75, 0, 0, 0, 50, 0, 0, 0, 200, 0, 0, 0, 50, 0, 0, 0, 50 )' 'Выхлоп двигателя Полоса за двигателем NewShipType.trailLinger = 4 ''-- vaygr have 2, hiigaran have 4, except HDFFr, which is also 2;'' setEngineTrail('NewShipType, 0, 15, "trail_ribbon.tga", 0.2, 0.5, 0.025, 8 ) 'Пламя из движка setEngineBurn( , ''-- NewShipType для корабля или NewMissileType или ракеты;'' , ''-- количество сфер на путь. Траектория пути задается в файле .hod;'' , ''-- стартовая скорость бегающей сферы;'' , ''-- конечная скорость бегающей сферы;'' , ''-- диаметр первой сферы в цепочке;'' , ''-- масштаб стартовой вспышки; умножается на ;'' , ''-- при взгляде на двигатель в направлении с носа на корму, этот параметр уменьшает яркость свечения ;'' , ''-- смещение основного свечения;'' ''-- диаметр основного свечения;'' )''' ''Для примера:'' 'setEngineBurn('NewShipType, 20, 0.3, 2, 30, 2, 0.5, 0, 100)' 'Сияние выхлопа''' setEngineGlow('NewShipType, 1, 1, 1.02, 20, 300, 50, 1.5, -- standard for all frigates; {0.27, 0.47, 0.69, 0.25,} -- цвет выхлопа, в формате {RGB + прозрачность}, от 0 до 1; ') Расовое сияние: ** {0.27, 0.47, 0.69, 0.25,} -- для хиигарянский кэпов, где-то RGB(69,120,176); ** {0.92, 0.21, 0.09, 0.25,} -- для вэйгрских кэпов, где-то RGB(235,54,23); Озвучка корабля loadShipPatchList(NewShipType, "data:sound/sfx/ship/", --указываем папку, где хранятся звуки; 0, "Vaygr/Carrier/Engines/VDestroyerEng", "", --указываем первый звук и точку привязки (пустой слот, значит, весь корабль); 1, "Vaygr/Carrier/Ambience/VDestroyerAmb", "", --указываем второй звук и точку привязки; 3, "Megaliths/RandomEmit/HANGAR_EMITTERS", "HardPoint_Production1_Position" --хз, почему здесь "3" (может, был 3ий звук, но его потом удалили), но логика та же; итд; )' Abilities В следующих строчках будут описаны параметры абилок через комментарии к коду; если комментариев нет - значит, хз, чо за параметр, то есть, требуется экспериментатор для проверки. Стандартные абилки '''addAbility('NewShipType, "ParadeCommand", 1)' ''--цифра показывает, доступно ли по умолчанию; возможность к парадным построениям (?) - есть у всех кораблей; addAbility('NewShipType, "MoveCommand", 1,--доступно ли по умолчанию, проще говоря, способен ли двигаться, если нет - то зачем прописывать? );'' 0 ''-- этот параметр показывает, сколько раз может двигаться корабль; если 0 - то бесконечно, если 1, то 1 раз; неясно, это вкл/выкл, или циферька показывает количество перемещений до полной остановки;'' ''') addAbility('''NewShipType, "WaypointMove")' ''--судя по всему, способность двигаться по маршрутам; есть у всех "неодноразовых" кораблей; addAbility('NewShipType, "GuardCommand", ''--способность "эскорта"; 1,''--доступно ли по умолчанию;'' 3000, ''--походу, расстояние; то ли стандартное, то ли максимальное от эскортируемого;'' 600 --эскадрильи и коллекторы: '''500; фрегаты: 600, кроме ДФГ(300); эсминцы и контроллеры: 800; верфи, "линейки" и носители: 1000; возможно, минимальное расстояние от эскортируемого; ) addAbility('NewShipType, "RetireAbility", ''--способность разбираться на запчасти; 1,''--доступно ли по умолчанию;'' 1 -- единица у всех кораблей, начиная с фрегат-класса и выше, за исключением, флагманов и верфей; ''') addAbility('NewShipType, "CanAttack", --способность атаковать; 1, --доступно ли по умолчанию;'' 1, 0, 1, 0.35, 1.5, -- standard for all frigates; "Capturer, Frigate, SmallCapitalShip, BigCapitalShip, Mothership, Utility, Corvette", --depends on frigate specialization; I guess, order defines preferrable target; "Frontal", --standard for all frigates; {SubSystem = "FrontalVsSubSystem",}, -- standard for all frigates; ... ''--и дополнять дальше по вышеозначенным образцам, семью атакуемых смотреть в '''familylist.lua, тип атаки - хз;'' {Corvette = "MoveToTargetAndShoot",} -- standard for all frigates; )' Производственные корабли * 'Производство addAbility('NewShipType, "CanBuildShips", 1, ''--вероятно, параметр "разрешения" - доступно ли по умолчанию; "Fighter_Hgn, ..., Corvette_Hgn,",'' --здесь перечисляем, корабли каких семейств можно строить, смотреть в '''familylist.lua;'' "Utility, ..., Fighter,"'' --здесь перечисляем какие типы кораблей вообще можно строить, смотреть в familylist.lua;'' )' * 'Ангары addAbility('NewShipType, "ShipHold", 1, --вероятно, параметр "разрешения" - доступно ли по умолчанию;'' 250, 20, "rallypoint", "Fighter,Corvette,Utility",'' --здесь перечисляем какие типы кораблей можно принимать на борт, смотреть в '''familylist.lua;'' 35, {Frigate = "800",},'' --количество фрегатов принимаемых на борт, цифры, вероятно, как-то связаны с NewShipType.unitCapsNumber, а может и нет;'' ...,'' --заполняем аналогично, название семейств смотрим в familylist.lua;'' {Corvette = "75",}'' -- цифры, на самом деле, какие-то неадекватные, нужно сравнивать;'' )' Эти две абилити как-то связаны с ShipHold & CanBuildShips: '''addAbility('NewShipType, "CanDock", 1, ''--доступно ли по умолчанию, но хз;'' 0 ''--может ли корабль залетать в док;'' ) 'addAbility('NewShipType, "CanLaunch") ''--как-то связано с запуском, но хз, ибо прописано у всех кораблей;'' Обеспечение * '''Добыча ресурсов addAbility('NewShipType, "Harvest", 1, --доступно ли по умолчанию;'' 200, 8, 300 ''') * Собирание обломков addAbility('''NewShipType, "SalvageCommand", 1)' '' -- цифра показывает, доступно ли по умолчанию; Чтобы обломок можно было забрать, ему нужно прописать эту ability: addAbility('''NewShipType, "CanBeSalvaged")' * 'Ремонт''' addAbility('NewShipType, "RepairCommand", 0, --доступно ли по умолчанию;'' 500, 9, {SuperCap = "18",}, ... --искать в '''familylist.lua, хз, чо значат циферьки; {Flagship = "18",} )' Чтобы корабль можно было починить, ему нужно прописать эту ''ability: addAbility(NewShipType, "CanBeRepaired") Гиперпространство * '''Гипер-прыжок addAbility('NewShipType, "HyperSpaceCommand", 0, --доступно ли по умолчанию;'' 1, 200, 500, 0, 3 ''') -- hiigarans have (0, 1, 200, 500, 0, 3), vaygr have (0, 1, 500, 1000, 0, 3); * Использование гипер-воронок addAbility('NewShipType, "HyperspaceViaGateCommand", 1, --доступно ли по умолчанию;'' 3, 1, 0.3 ''') ''--стандартные параметры для всех кораблей; максимальный класс корабля - эсминец;'' * Формирование гипер-канала addAbility('NewShipType, "FormHyperspaceGateCommand", 1, --доступно ли по умолчанию;'' 1000, 500, 1000, 0 ''') * Гипер-ингибитор addAbility('NewShipType, "HyperspaceInhibitorAbility", 0, --вероятно, параметр "разрешения" - доступно ли по умолчанию (нет, т.к. нужен модуль);'' 12000'' -- радиус ингибитор-поля;'' ''') Другие умения * Стэлс addAbility('NewShipType, "CloakAbility", 0, --вероятно, параметр "разрешения" - доступно ли по умолчанию (нет, т.к. нужен модуль);'' 2, 2000, 4000, 3, 100, 1, 1000 ''') * Пинг addAbility('NewShipType, "SensorPing", 0, --доступно ли по умолчанию;'' 1, 10, 2.5 ''') * ЭМИ addAbility('NewShipType, "SpecialAttack", 0, --доступно ли по умолчанию;'' "EMP"'' --вероятно, тип специальной атаки, см. Data\Scripts\weaponfire;'' ''') Для защиты от этого умения атакуемым кораблям нужно прописать: addShield('NewShipType, "EMP", ''-- тип атаки, см. Data\Scripts\weaponfire; 310, --крутость щита; 20 --время в секундах на восстановление; ''') * Абордаж addAbility('NewShipType, "CaptureCommand", 1, --доступно ли по умолчанию;'' -50 ''') Чтобы корабль можно было захватить, ему нужно прописать: addAbility('NewShipType, "CanBeCaptured", 45, --usually is used 45, but HICFr, HFFr & HTFr are 30; generally speaking, hiigaran battle frigates; 0.1 -- usually is used 0.1, but HMFr & HDFFr got 0.5; ') * Силовое поле AddShipAbility('NewShipType, "DefenseField", 1, --доступно ли по умолчанию;'' "ThisShipOnly", --ареал распространения (смотри "Усилители'"); 0 ')' '''addAbility('NewShipType, "DefenseFieldShieldAbility", --имеется большое подозрение, что эта фича связана с синглплеерной фишкой защиты от радиационного поля; 0,'' --доступно ли по умолчанию;'' 1200, 0, 0 )' "Усилители" В общем виде это дело выглядит так: '''AddShipMultiplier('NewShipType, "WeaponAccuracy", --тип усиления; "OwnShipsWithinRadiusExcludingThisShip", --ареал распространения; "Linear", --график увеличения статов (неясно), линейное; 1.15, 1.15, --коэффициенты, неясно, почему два; 4500 --расстояние распространения ''') Было бы интересно попробовать, какие функции запрограммировали ещё в движок. Для примера: * Linear: f(x)=ax+b; * Quadratic: f(x)=ax2+bx+c; * Cubic: f(x)=ax3+bx2+cx+d; * Exponential: f(x)=ax; Правда, всё равно не понятно, почему указано два коэффициента. Это намёк на x,y, какую-то геометрическую фигуру (овал, к примеру), двухаргументную функцию, полярные координаты или что?.. Или просто - коэффициенты для передней/задней или нижней/верхней полусфер? Типы усиления: Параметры, встречающиеся в research.lua и требующие проверки, будут отмечены буквой R'. 'Жизненные параметры BUILDSPEED ''-- изменение скорости строительства; R'' MAXSPEED ''-- изменение скорости кораблей; R'' MAXHEALTH ''-- изменение хитпойнтов кораблей; R'' HealthRegenerationRate ''-- изменение скорости регенерации хитпойнтов; R'' NebulaSensitivity ''-- изменение чувствительности к туманностям; R'' DustCloudSensitivity ''-- изменение чувствительности к пылевым облакам;'' Оружие WeaponAccuracy ''-- изменение точности орудий;'' WeaponDamage ''-- изменение урона от орудий;'' Capture ''-- изменение скорости захвата; R'' Гипер-прыжки HyperspaceCost ''-- изменение стоимости прыжка; R'' HyperspaceRecoveryTime ''-- изменение времени "оживления" корабля после гипер-прыжка; R'' HyperspaceTime ''-- изменение времени, проводимого кораблём в гиперпространстве; R'' HyperSpaceAbortDamage ''-- изменение процента повреждений, получаемых кораблём при попадании на вражеский ингибитор; R'' Сенсоры PrimarySensorsRange ''-- изменение первичного радиуса видимости; R'' SecondarySensorsRange ''-- изменение вторичного радиуса видимости; R'' VisualRange ''-- изменение радиуса видимости в тактическом экране; R'' SensorDistortion ''-- ухудшение вражеских сенсоров;'' Типы ареалов: *# ThisShipOnly ''--только этот корабль;'' *# OwnShipsWithinRadius ''--свои корабли в радиусе;'' *# OwnShipsWithinRadiusExcludingThisShip ''--свои корабли в радиусе, за исключением корабля-источника;'' *# AllShipsWithinRadiusExcludingThisShip ''--все корабли в радиусе, за исключением корабля-источника;'' Должно быть уже и AllShipsWithinRadius тогда... Примеры: AddShipMultiplier(NewShipType, "WeaponAccuracy", "OwnShipsWithinRadiusExcludingThisShip", "Linear", 1.15, 1.15, 4500) -- КомКорвет; AddShipMultiplier(NewShipType, "SensorDistortion", "OwnShipsWithinRadius", "Linear", 0.6, 0.6, 6000) --ДисторПробка; AddShipMultiplier(NewShipType, "NebulaSensitivity", "ThisShipOnly", "Linear", 0, 0, 0) --Муверы; Оружие StartShipWeaponConfig('NewShipType, "Hgn_VulcanKineticTurretWeak", "Weapon_TurretTop", "Weapon_TurretTop" ') Содержимое файла *.subs * Гипер-ингибитор от модуля AddSubSystemAbility('NewSubSystemType, "HyperspaceInhibitor", 1, --доступно ли по умолчанию;'' "ThisShipOnly", 0 ''') * Гипер-прыжок от модуля AddSubSystemAbility('NewSubSystemType, "Hyperspace", 1, --доступно ли по умолчанию;'' "OwnShipsWithinRadius", ''--ареал действия;'' 3500'' -- радиус или диаметр действия;'' ''') * Усиления от модулей AddSubSystemMultiplier(NewSubSystemType, "Speed", "ThisShipOnly", "Linear", 1, 0.35, 0) --hgn_battlecruiserbridge; AddSubSystemMultiplier(NewSubSystemType, "ResourceDropOffRate", "ThisShipOnly", "Linear", 1, 0, 0) --hgn_c_innate_resource AddSubSystemMultiplier(NewSubSystemType, "CloakDetection", "ThisShipOnly", "None", 4, 4, 0) --hgn_c_sensors_detectcloaked AddSubSystemMultiplier(NewSubSystemType, "VisualRange", "ThisShipOnly", "None", 4, 4, 0) --hgn_c_sensors_detectcloaked AddSubSystemAbility(NewSubSystemType, "Cloak", 1, "ThisShipOnly", 0) --hgn_cloakgenerator Содержимое файла *.miss Конфигурационный файл для ракет. Всё, что уже рассортировано и повторялось раньше, здесь не приводится. NewShipType.maxShield = 0 NewShipType.shieldRechargeTime = 0 NewShipType.weaponName = "Hgn_TorpedoLauncher" NewShipType.lifeTime = 20 NewShipType.launchTime = 0 NewShipType.detectionDistance = 1000 NewShipType.clusterDistance = 750 NewShipType.numberSubMunitions = 4 NewShipType.subMunitionName = "Hgn_ClusterTorpedoB" NewShipType.clusterAngle = 65 NewShipType.density = 1 NewShipType.slowdownFactor = 0.5 NewShipType.tumbleSpeed = 0 NewShipType.targetAngle = 5 NewShipType.spiralsPerSecondMin = 0.5 NewShipType.spiralsPerSecondMax = 0.6 См. также * Перенос корабля из другого мода; * Создание новой расы для Homeworld 2 * Настройка Eclipse для работы с модами; Ссылки * VariableShip - переменные кораблей на Кладбище Кароса; ---- Категория:МоддингКатегория:Скриптинг